package com.example.ymm.modules1.service.ms;

import com.alibaba.fastjson.JSONObject;
import com.example.ymm.base.BaseService;
import com.example.ymm.model.TableList;
import com.example.ymm.model.YmPageDto;
import com.example.ymm.modules1.entity.ms.CkOutbillList;
import com.example.ymm.modules1.entity.ms.VckStock;
import com.example.ymm.modules1.query.ms.CkOutbillQueryCriteria;
import com.example.ymm.modules1.query.ms.MsWarehouseDtoQueryCriteria;
import com.example.ymm.modules1.query.ms.VckStockQueryCriteria;
import com.example.ymm.modules1.service.dto.ms.MsWarehouseDto;

import java.util.List;

public interface VckStockService extends BaseService<VckStock> {


    TableList<VckStock> list(VckStockQueryCriteria criteria, YmPageDto ymPage);


    /**
     * 无关联
     * @param criteria
     * @param ymPage
     * @return
     */
    TableList<VckStock> listNoRef(VckStockQueryCriteria criteria, YmPageDto ymPage);


    List<VckStock> queryAll(VckStockQueryCriteria criteria);


    /**
     * 库位列表
     * @param criteria
     * @return
     */
    List<MsWarehouseDto> warehouseList(MsWarehouseDtoQueryCriteria criteria);


    /**
     * 库存列表
     */
    List<VckStock> stockList(VckStockQueryCriteria criteria);

    /**
     * 库存列表
     * 无关联
     */
    List<VckStock> stockListNoRef(VckStockQueryCriteria criteria);

    TableList<CkOutbillList> outbillPageList(CkOutbillQueryCriteria criteria,YmPageDto ymPage);


    List<CkOutbillList> outbillList(CkOutbillQueryCriteria criteria);

    List<CkOutbillList> outbillTotal(CkOutbillQueryCriteria criteria);

    JSONObject outbillDeptUser();

}
